﻿/////////////////////////////////////////////////////////////////////////////////
///              ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO                   ///
///                        PROYECTO INTEGRADOR IV                             /// 
///                         PROYECTO SICOPS 2011                              /// 
/// ------------------------------------------------------------------------- ///  
///              **********GRUPO DE DESARROLLADORES**********                 ///
///                    ************PEGASO*************                        /// 
///---------------------------------------------------------------------------///
///                                                         RIOBAMBA-ECUADOR  ///
///---------------------------------------------------------------------------///
///Marco Pineda registro de nuevos servicios**********************************///
///---------------------------------------------------------------------------///
///                       FORMULARIO DE SERVICIOS                             ///
/////////////////////////////////////////////////////////////////////////////////





using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using LogisticaDeAcceso;

namespace Aplicacion.Formularios
{
    public partial class frmServicios : Form
    {

        private bool varBandera = true;//Variable para el control de los espacios
        private string varConexion;//Variable con la direccion de coneccion, el nombre del base de datos y la cuenta de acceso
        private Negocios.ComponeteNegocios auxCom = new Negocios.ComponeteNegocios();

        public frmServicios()
        {
            InitializeComponent();
        }

        public frmServicios(string Con)
        {
            //Inicalizar las variables de acceso l base de datos
            InitializeComponent();
            varConexion = Con;
        }

    

        private void frmServicios_Load(object sender, EventArgs e)
        {
            metGenerarClave();

        }

        private void metGenerarClave()//metodo que se utiliza para la generacion de las claves primarias
        {
            Aplicacion.clsControles.clsControles auxGen = new Aplicacion.clsControles.clsControles();
            txtCodigoSE.Text = auxGen.GeneracionClaves("S", auxCom.metConteoMostrarServicios(varConexion,this.coleccionDeDatos1));//Llamado al metodo que genera una clave
            //Metodo que se encuentra en las clases de acceso         
        }

        private void btnGuardarSE_Click(object sender, EventArgs e)
        {
            metIngresarServicio();
            btnGuardarSE.Enabled = false;
            btnNuevoSE.Enabled = true;
            grpIngresoServiciosSE.Enabled = false;
        }

        private void metIngresarServicio()
        {
            auxCom.metIngresarServicio(varConexion,txtCodigoSE.Text,txtDetalleSE.Text,txtObservacionesSE.Text,txtDesContableSE.Text);
        }

        private void textDetalleSE_KeyDown(object sender, KeyEventArgs e)
        {
            //Reconoce si se preciono enter      
            if (e.KeyCode == Keys.Enter)
                txtObservacionesSE.Focus();
        }

        private void textObservacionesSE_KeyDown(object sender, KeyEventArgs e)
        {
                 //Reconoce si se preciono enter      
            if (e.KeyCode == Keys.Enter)
                txtDesContableSE.Focus();
        }

        private void textDetalleSE_KeyPress(object sender, KeyPressEventArgs e)
        {
            metControlEspacios(e);//Llamado al metodo de control de espacios
        }
        private void metControlEspacios(KeyPressEventArgs e)
        {
            //Permite que se ingrese lo que sea menos dos espacios seguidos
            Aplicacion.clsControles.clsControles auxFrm = new Aplicacion.clsControles.clsControles();
            varBandera = auxFrm.metControlarEspacios(e, varBandera);//Controla que el ingreso sea de numeros o de letras
            varBandera = auxFrm.metPrecionarEspacio(e, varBandera);//Control de espacios para que ingresen mas de un espacio
        }

        private void textObservacionesSE_KeyPress(object sender, KeyPressEventArgs e)
        {
            metControlEspacios(e);//Llamado al metodo de control de espacios
        }

        private void textDesContableSE_KeyPress(object sender, KeyPressEventArgs e)
        {
            Aplicacion.clsControles.clsControles auxFrm = new Aplicacion.clsControles.clsControles();
            varBandera = auxFrm.metSoloLetras(e, varBandera);//controla que solo ingrese letras
            varBandera = auxFrm.metPrecionarEspacio(e, varBandera);//Controla el ingreso de espacios
            //Estos metodo se encuentran en la clase de acceso locales
        }

        private void textDesContableSE_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
                btnGuardarSE.PerformClick();
        }

        private void metAceptar()
        {
            //Si se valida correctamente los datos de los casilleros(texbox,combobox) este
            //metodo activa o desactiva el boton de nuevo ingreso
            if (txtDesContableSE.Text.Length>=3 && txtDetalleSE.Text.Length>=4 && txtObservacionesSE.Text.Length>=5)
                btnGuardarSE.Enabled = true;/////Activar
            else
                btnGuardarSE.Enabled = false;////desactivar
        }

        private void textDetalleSE_KeyUp(object sender, KeyEventArgs e)
        {
            metAceptar();//Llamdo al metodo que controla la activacion de los botones de registro
        }

        private void btnNuevoSE_Click(object sender, EventArgs e)
        {
            //Limpiar los datos para ingresos nuevos
            metGenerarClave();
            btnNuevoSE.Enabled = false;
            metLimpiar();
            grpIngresoServiciosSE.Enabled = true;
            txtDetalleSE.Focus();
        }
        private void metLimpiar()
        {

            txtObservacionesSE.Clear();
            txtDetalleSE.Clear();
            txtDesContableSE.Text = "Sin descripción";
            txtDetalleSE.Focus();
        }

        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            Aplicacion.Formularios.frmModificarServicio auxFrm = new frmModificarServicio(varConexion);
            auxFrm.ShowDialog();
        }
    }
}
